package gob.cgr.sgrh.ejb.session;

import java.util.ArrayList;
import java.util.List;

import javax.ejb.Stateless;
import javax.persistence.Query;

import gob.cgr.sgrh.ejb.entidad.AdmGrado;
import gob.cgr.sgrh.ejb.entidad.Cargo;
import gob.cgr.sgrh.ejb.entidad.CondicionEstudio;
import gob.cgr.sgrh.ejb.entidad.Documento;
import gob.cgr.sgrh.ejb.entidad.Maestra;
import gob.cgr.sgrh.ejb.entidad.Puesto;
import gob.cgr.sgrh.ejb.entidad.SeccionLegajo;
import gob.cgr.sgrh.ejb.entidad.UnidadOrganica;
import gob.cgr.sgrh.ejb.local.MaestraDAO;

@Stateless
public class MaestraSession extends GenericSessionImpl<Maestra, Integer> implements MaestraDAO {

@Override
public List<Maestra> listarMaestra(String tabla, String campo) {
	// TODO Auto-generated method stub
	Query q=getEm().createQuery("select m from Maestra m where m.tabla=:tabla and m.campo=:campo order by m.descripcion");
	q.setParameter("tabla", tabla);
	q.setParameter("campo",campo);
	Object o=q.getResultList();
	return o==null?new ArrayList<Maestra>():(ArrayList<Maestra>)o;
}



@Override
public List<Documento> listarDocumentosDeSolicitud() {
	// TODO Auto-generated method stub
	return listarDocumentosPorTipo("SOLICITUD");
}

@Override
public List<Documento> listarDocumentosObligatorios() {
	// TODO Auto-generated method stub
	return listarDocumentosPorTipo("REQUISITO");
}

@Override
	public List<UnidadOrganica> listarUnidadesOrganicas() {
	Query q=getEm().createNamedQuery("UnidadOrganica.findAll");
	Object o=q.getResultList();
	return o==null?new ArrayList<UnidadOrganica>():(ArrayList<UnidadOrganica>)o;
	}
	
@Override
	public List<Puesto> listarPuestos(Integer idCargo) {
	System.out.println("idCargo");
	Query q=getEm().createNamedQuery("Puesto.findByCargo");
	q.setParameter("idCargo", idCargo);
	Object o=q.getResultList();
	return o==null?new ArrayList<Puesto>():(ArrayList<Puesto>)o;
	}
@Override
	public List<Cargo> listarCargos() {
	Query q=getEm().createNamedQuery("Cargo.findAll");
	Object o=q.getResultList();
	return o==null?new ArrayList<Cargo>():(ArrayList<Cargo>)o;
	}


@Override
public List<SeccionLegajo> listarSeccionesLegajo() {
	Query q=getEm().createNamedQuery("SeccionLegajo.findAll");
	Object o=q.getResultList();
	return o==null?new ArrayList<SeccionLegajo>():(ArrayList<SeccionLegajo>)o;
}
@Override
	public List<Documento> listarDocumentosPorTipo(String tipo) {
	Query q=getEm().createNamedQuery("Documento.findByTipoDocumento");
	q.setParameter("tipoDocumento", tipo);
	Object o=q.getResultList();
	return o==null?new ArrayList<Documento>():(ArrayList<Documento>)o;
	}
}
